第 2 步 - 为其他地区创建地区包

地区包是只包含特定地区的资源的 kzb 文件。 使用 Kanzi Engine API 可以在设置地区时加载该地区使用的应用程序资源。这样可以减少应用程序中 kzb 文件的大小。

在本教程的这一步骤中,您首先准备用于加载其他地区的 Kanzi Studio 工程,然后创建JapaneseChineseKorean 地区的样式和地区包。

准备用于加载其他地区的 Kanzi Studio 工程

在本节中,您将学习修改在教程的上一步创建的 Kanzi Studio 工程。导入包含其他地区的资源的 .po 文件并准备工程,使LocaleSelector 中的LocaleButton 预设件的实例使用自定义属性控制应用程序的地区。

要准备用于加载其他地区的工程:

  1. 素材库 (Library) > 本地化 (Localization) 中右键点击本地化表(主)(Localization Table, Main) 本地化表,选择手动导入本地化表 (Import Localization Table Manually),转到 <KanziWorkspace>/Tutorials/Localization/Assets/Text 并导入包含JapaneseChineseKorean地区文本字符串的 ja-JP.pozh-ZH.poko-KR.po 文件。
    Kanzi Studio 会创建 .po 文件中指定的地区,并将翻译从 .po 文件添加到本地化表。

  2. 素材库 (Library) 中,按下 Alt 并右键点击属性类型 (Property Types) 并选择 属性类型 (Property Type)
  3. 新建属性类型 (New Property Type) 窗口中设置:

    点击保存 (Save)
    您使用自定义属性类型通过LocaleSelector 节点中的按钮设置地区。

  4. 预设件 (Prefabs) 中选择LocaleButton 预设件,并在属性 (Properties) 中添加Localization.LocaleID 属性。
  5. LocaleButton 预设件资源目录中,创建一个指向 屏幕 (Screen) 节点的 别名 (Alias),以便能够从 LocaleButton 预设件访问 屏幕 (Screen) 节点。
    1. 预设件 (Prefabs) 中选择 LocaleButton 预设件,在 字典 (Dictionaries) 中点击 + 添加资源 (+ Add Resource),选择 创建 (Create) > 别名 (Alias),然后将 别名 (Alias) 的名称设置为 Screen
    2. 字典 (Dictionaries) 点击别名旁的单元格,点击 < Relative >,选择 屏幕 (Screen),并按 Enter
  6. 预设件 (Prefabs) 中选择LocaleButton,在节点组件 (Node Components) 中添加切换按钮: 打开 (Toggle Button: Toggled On) 触发器,添加设置属性 (Set Property) 动作并设置:

    点击保存 (Save)

  7. 工程 (Project)LocaleSelector 节点中为第一个LocaleButton 预设件实例:
    1. 属性 (Properties) 中添加Localization.LocaleID 属性并将其设为要使用按钮设置的地区。

      例如,要设为默认地区,对于English,选择不因语言而异(不因国家而异) (Invariant Language (Invariant Country) ()) 值。
    2. 节点组件 (Node Components) 中右键点击切换按钮: 打开 (Toggle Button: Toggled On) 触发器并选择移除 (Remove)
      通过这种方式,您可以将定义每个预设件实例中切换地区的触发器,替换为在预设件中定义的从每个预设件实例的Localization.LocaleID 属性获取地区值的触发器。
  8. LocaleSelectorLocaleButton 的每个实例重复上一步骤:
  9. 工程 (Project)按下 Alt 并右键点击 LocaleSelector 节点并选择别名 (Alias)
    您可使用别名通过 Kanzi Engine API 访问LocaleSelector 节点并添加按钮,以从您在这一步骤的下一节准备的地区包加载地区。

为其他地区创建样式

在本节中,您将学习为使用包含JapaneseChineseKorean 字形的字体的其他地区创建样式。

要为其他地区创建样式:

  1. 创建设置每个地区的字体的样式:
    1. 选择文件 (File) > 导入 (Import) > 导入字体 (Import Fonts)并从 <KanziWorkspace>/Tutorials/Localization/Assets/Fonts 导入含有JapaneseChineseKorean 字形的字体。请参阅导入字体
      例如,导入notosanscjkjp-regular.otf 用于Japanesenotosanscjkkr-regular.otf用于Koreannotosanscjksc-regular.otf 用于Chinese
      确保使用的字体包含 Kanzi 应用程序中想要呈现的文本需要的所有字形。
    2. 本地化编辑器 (Localization Editor) 中点击+ 添加资源 (+ Add Resource),选择创建 (Create) > 已命名样式 (Named Style) 并命名为 LocaleStyle
    3. 素材库 (Library) > 样式 (Styles) 中右键点击LocaleStyle,选择重复 (Duplicate),并将样式命名为使用它的地区。
      例如,命名Japanese 地区的样式为LocaleStyle-jpChinese 地区的样式为LocaleStyle-zh以及Korean 的样式为LocaleStyle-kr
    4. 素材库 (Library) 中选择一个样式,并在属性 (Properties) 中添加和设置字体 (Font) 属性为含有该地区所用字形的字体。
      例如,将 Korean 地区设置的 字体 (Font) 属性设置为 notosanscjkkr-regular.otf 字体。对于默认LocaleStyle,设置字体 (Font)notosans-regular.ttf
  2. Localization Table 中,在您要应用所创建样式的每个地区的列中双击LocaleStyle 单元格并选择要应用到该地区的样式。
    例如,对于Japanese 地区选择LocaleStyle-jpFinnishSpanish 地区使用LocaleStyle,使用默认字体。
  3. 工程 (Project) 中,选择RootPage 节点,在属性 (Properties) 中移除字体 (Font) 属性,添加样式 (Style) 属性,将其设为<ResourceID>,资源 ID 设为LocaleStyle
    您需要移除RootPage 中的字体 (Font) 属性,因为在本地节点中设置的属性值重写了样式中设置的值。
  4. 预设件 (Prefabs) > LocaleButton中选择 2D 文本块 (Text Block 2D),在字体 (Font) 属性旁的属性 (Properties) 中点击 并命名属性Localization.LocaleButtonFont
    通过这种方式,您在使用具有不同字形的字体的地区之间导航时,可以为每个地区名称使用正确的字体。
  5. 选择 预设件 (Prefabs) > LocaleButton 并在属性 (Properties) 中移除Localization.LocaleButtonFont 属性。
  6. 工程 (Project) 中选择各预设件实例,在属性 (Properties) 中添加Localization.LocaleButtonFont 属性,将其设为notosans-regular.ttf

创建地区包

地区包是只包含特定地区的资源的 kzb 文件。

在本节中,向工程添加JapaneseChineseKorean 地区的本地化资源并创建地区包。在下一节中,您将学习使用 Kanzi Engine API 加载地区包。

<KanziWorkspace>/Tutorials/Localization/Assets/Text 目录中您可以找到包含在本教程中用于本地化为JapaneseChineseKorean Kanzi Studio 工程中使用的所有文本字符串的 .po 文件。

要创建一个地区包:

  1. 创建用于显示LocaleButton 节点中地区名称的文本资源:
    1. 素材库 (Library) > 本地化 (Localization) 中双击本地化表(主)(Localization Table, Main) 本地化表,在本地化编辑器 (Localization Editor) 中打开。
    2. 点击+ 添加资源 (+ Add Resource),选择创建 (Create) > 文本 (Text),并命名新文本资源LocaleDisplayName
      下一步,使用 Kanzi Engine API 设置文本资源,在用于加载该地区的LocaleButton 中显示地区名称。
    3. 在从其自己的地区包中加载资源的每个地区的列中,点击 LocaleDisplayName 单元格,输入要在每个地区的 LocaleButton 中显示的文本并按下 Enter 键。
      由于您要让地区的用户找到其地区,所以使用每个地区的本名。例如,对Japanese 使用日本語,对Korean 使用 한국어,对Chinese使用中文。
  2. Localization Table 中设置要用于JapaneseChineseKorean 地区的图像。
    例如,对于Japanese 地区使用 Image04,对于Korean 地区使用 Image05,对于Chinese地区使用 Image06。
  3. Localization Table 中点击JapaneseChineseKorean 地区的名称旁的
    这样您可以标记要为其创建地区包 kzb 文件的地区,文件仅包含该地区使用的资源。Kanzi Studio 不会将本地化表中标记为地区包的地区的资源导出到主 kzb 文件。
  4. Kanzi Studio 中选择文件 (File) > 导出 (Export) > 导出 KZB (Export KZB)。该命令:


< 上一步
下一步 >

另请参阅

本地化应用程序

使用地区

使用别名

使用样式

导入字体

属性类型